package com.elective.courseselect.config;

import com.elective.courseselect.quartzJob.QuartzJob;
import org.quartz.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author lee
 * @date 2021年10月24日 0:12
 */
@Configuration
public class QuartzConfig
{
    public static String JOB_GROUP_NAME = "SYNC_CHECK_TIME_TASK";
    public static String TRIGGER_GROUP_NAME = "CHECK_TIME_TRIGGER_NAME";
    /**
     * 定时任务1：
     * 同步检查时间任务
     */
    @Bean
    public JobDetail syncCheckTimeTask()
    {
        JobDetail jobDetail = JobBuilder.newJob(QuartzJob.class)
                .withIdentity("syncCheckTimeTask",JOB_GROUP_NAME)
                .storeDurably() //即使没有Trigger关联时，也不需要删除该JobDetail
                .build();
        return jobDetail;
    }

    /**
     * 定时任务1：
     * 同步用户信息Job（触发器）
     */
    @Bean
    public Trigger syncCheckTimeJobTrigger()
    {
        //每隔5秒执行一次
        CronScheduleBuilder cronScheduleBuilder = CronScheduleBuilder.cronSchedule("0/5 * * * * ?");
        //创建触发器
        Trigger trigger = TriggerBuilder.newTrigger()
                .forJob(syncCheckTimeTask())//关联上述的JobDetail
                .withIdentity("syncCheckTimeJobTrigger",TRIGGER_GROUP_NAME)//给Trigger起个名字
                .withSchedule(cronScheduleBuilder)
                .build();
        return trigger;
    }
}
